home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / hewin / ccisrc / wpaper.cci < prev   
Text File  |  1993-11-30  |  6KB  |  217 lines

  1. /*************************************************************************
  2. *    "wpaper.cci" : 壁紙設定
  3. *************************************************************************/
  4.  
  5.  
  6. int        _wall_setCfg(char *obj, int cfg)
  7. {
  8.     char    *s;
  9.  
  10.     switch( cfg )
  11.     {    case    APL_WALLPAPER_CFG_NORMAL:    s = "NORMAL";    break;
  12.         case    APL_WALLPAPER_CFG_CENTER:    s = "CENTER";    break;
  13.         case    APL_WALLPAPER_CFG_TILE:        s = "TILE";        break;
  14.         default:                            s = "???";        break;
  15.     }
  16.     MNU_setObj(obj, 1, MNU_STR, 'D', "Display mode [%s]", s, 1, NULL, NULL );
  17. }
  18.  
  19. char    *_wall_setFile(char *obj, char *path )
  20. {
  21.     int            ret;
  22.     char        *s;
  23.     char        *fdl;
  24.     static char    buf[128];
  25.  
  26.     if ( (fdl = FDL_open(0)) == NULL )
  27.         return (path);
  28.     FDL_set_title( fdl,"WallPaper tiff file");
  29.     FDL_set_wildcard( fdl, "*.tif");
  30.     FDL_set_defaultFilename( fdl, path);
  31.     ret = FDL_start(fdl);
  32.     s   = FDL_get_filename(fdl);
  33.     if ( ret == NORMAL && strlen(s) > 0 )
  34.     {
  35.         strcpy( buf, s );
  36.         path = buf;
  37.         MNU_setObj(obj, 0, MNU_STR, 'F', "FILE : %s", path , 0, NULL, NULL );
  38.     }
  39.     FDL_close(fdl);
  40.     return (path);
  41. }
  42.  
  43. int        WallTiff()
  44. {
  45.     int            ret, cfg, frcol, bkcol;
  46.     char        *mnu;
  47.     char        *obj;
  48.     char        *path;
  49.  
  50.     cfg   = APL_getWallPaper(1);
  51.     frcol = APL_getWallPaper(2) & 15;
  52.     bkcol = APL_getWallPaper(3) & 15;
  53.     path  = APL_getWallPaper(4);
  54.  
  55.     obj = MNU_alloc(7);
  56.  
  57.     MNU_setObj(obj, 0, MNU_STR, 'F', "FILE : %s",    path , 0, NULL, NULL );
  58.     _wall_setCfg(obj,cfg);
  59.     MNU_setObj(obj, 2, MNU_BLK,  0,   NULL,            NULL , 0, NULL, NULL );
  60.     MNU_setObj(obj, 3, MNU_DIG, 'F', "前景色  %d",    frcol, 2, NULL, NULL );
  61.     MNU_setObj(obj, 4, MNU_DIG, 'B', "背景色  %d",    bkcol, 3, NULL, NULL );
  62.     MNU_setObj(obj, 5, MNU_BLK,  0,   NULL,            NULL , 0, NULL, NULL );
  63.     MNU_setObj(obj, 6, MNU_NOR, 'S', "決定",        NULL , 4, NULL, NULL );
  64.  
  65.     mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, MNUATT_EXIT, obj, "WallPaper" );
  66.     while ( 1 )
  67.     {    ret = MNU_start ( mnu );
  68.         if ( ret < 0 || ret == 4 )
  69.             break;
  70.         switch( ret )
  71.         {    case    0:    /* ファイル    */
  72.                 path = _wall_setFile(obj, path);
  73.                 break;
  74.             case    1:
  75.                 if ( cfg == APL_WALLPAPER_CFG_NORMAL )
  76.                 {    cfg = APL_WALLPAPER_CFG_CENTER;
  77.                 } else if ( cfg == APL_WALLPAPER_CFG_CENTER )
  78.                 {    cfg = APL_WALLPAPER_CFG_TILE;
  79.                 } else if ( cfg == APL_WALLPAPER_CFG_TILE )
  80.                 {    cfg = APL_WALLPAPER_CFG_NORMAL;
  81.                 }
  82.                 _wall_setCfg(obj,cfg);
  83.                 break;
  84.             case    2:
  85.                 if ( (ret = COLSET_dlg(frcol)) >= 0 )
  86.                 {    frcol = ret;
  87.                     MNU_setObj(obj, 3, MNU_DIG, 'F', "前景色  %d",    frcol, 2, NULL, NULL );
  88.                 }
  89.                 break;
  90.             case    3:
  91.                 if ( (ret = COLSET_dlg(bkcol)) >= 0 )
  92.                 {    bkcol = ret;
  93.                     MNU_setObj(obj, 4, MNU_DIG, 'B', "背景色  %d",    bkcol, 3, NULL, NULL );
  94.                 }
  95.                 break;
  96.         }
  97.     }
  98.     MNU_close(mnu);
  99.     MNU_free(obj);
  100.     if ( ret == 4 )
  101.     {    APL_setWallPaper( APL_WALLPAPER_TIFF, cfg, frcol,bkcol, path );
  102.     }
  103.     return (NORMAL);
  104. }
  105.  
  106. #if    0
  107. int        WallColor()
  108. {
  109.     int        ret, col;
  110.     char    buf[16];
  111.     char    *dlg;
  112.  
  113.     dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
  114.                         "壁紙の色番号を入力してください。");
  115.     DLG_getsSetTitle( dlg, "WallPaper" );
  116.     col = APL_getWallPaper(3);    /* get BkCol */
  117.     sprintf( buf, "%d", col );
  118.     ret = DLG_getsStart( dlg, 15, buf );
  119.     if ( ret > 0 && (col = atoi(buf)) >= 0 )
  120.     {    APL_setWallPaper( APL_WALLPAPER_NORMAL, col);
  121.     }
  122.     DLG_getsClose(dlg);
  123.  
  124.     return (NORMAL);
  125. }
  126. #else
  127. int        WallColor()
  128. {
  129.     int        col;
  130.  
  131.     col = APL_getWallPaper(3);    /* get BkCol */
  132.     col = COLSET_dlg2( col );
  133.     if ( col >= 0 )
  134.     {    APL_setWallPaper( APL_WALLPAPER_NORMAL, col);
  135.     }
  136.     MOS_initMoveArea();
  137.     return (NORMAL);
  138. }
  139. #endif
  140.  
  141. /*************************************************************************
  142. *    壁紙の設定
  143. *-------------------------------------------------------------------------
  144. *    アイテム登録可能
  145. *    パラメータ:なし
  146. *************************************************************************/
  147.  
  148. int        CCI_setWallPaper(int argc, char **argv)
  149. {
  150.     int            ret;
  151.     char        *mnu;
  152.     char        *obj;
  153.  
  154.     obj = MNU_alloc(2);
  155.     MNU_setObj(obj, 0, MNU_NOR, 'C', "Color 色指定",        NULL, 0, NULL, NULL );
  156.     MNU_setObj(obj, 1, MNU_NOR, 'T', "Tiff  ファイル指定",    NULL, 1, NULL, NULL );
  157.  
  158.     mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, MNUATT_EXIT, obj, "WallPaper" );
  159.     ret = MNU_start ( mnu );
  160.     MNU_close(mnu);
  161.     MNU_free(obj);
  162.     switch ( ret )
  163.     {
  164.         case    0:    WallColor();    break;
  165.         case    1:    WallTiff();    break;
  166.     }
  167.     return (NORMAL);
  168. }
  169.  
  170.  
  171. /*************************************************************************
  172. *    アプリケーション・カラーテーブルの変更(デバッグ用)
  173. *-------------------------------------------------------------------------
  174. *    アイテム登録可能
  175. *    パラメータ:なし
  176. *************************************************************************/
  177.  
  178. int        CCI_setColPtn_1( int argc, char **argv )
  179. {
  180. #if    0    /*    DEBUG CHECK    */
  181.     int        i;
  182.  
  183.     for ( i = 0; i <20; ++i )
  184.     {
  185.         printf( "AplCol[%2d] = $%04X\n", i, AplCol[i] );
  186.         fflush(stdout);
  187.     }
  188. #endif
  189.     APLCOL_WHITE    = C_HWHITE;
  190.     APLCOL_BLACK    = C_MBLACK;
  191.     APLCOL_GRAY        = C_WHITE;
  192.     APLCOL_DARK        = C_HBLACK;
  193.     APLCOL_SHADOW    = C_MBLACK;
  194.     APLCOL_WARNNING    = C_HYELLOW;
  195.     APLCOL_ERROR    = C_HRED;
  196.     APLCOL_SELBOX    = C_HRED;
  197.     APLCOL_INFO        = C_HGREEN;
  198.     APLCOL_WINBOX    = C_RED;
  199.     APLCOL_GRAY0    = C_HBLACK;
  200.     APLCOL_GRAY1    = C_RED;
  201.     APLCOL_GRAY2    = C_WHITE;
  202.     APLCOL_GRAY3    = C_MAGENTA;
  203.     APLCOL_METAL0    = C_GREEN;
  204.     APLCOL_METAL1    = C_CYAN;
  205.     APLCOL_METAL2    = C_YELLOW;
  206.     APLCOL_DLGBASE    = C_MAGENTA;
  207.  
  208.     APLCOL_BLUE        = C_HBLUE;
  209.     APLCOL_RED        = C_HRED;
  210.     APLCOL_MAGENTA    = C_HMAGENTA;
  211.     APLCOL_GREEN    = C_HGREEN;
  212.     APLCOL_CYAN        = C_HCYAN;
  213.     APLCOL_HYELLOW    = C_HYELLOW;
  214.  
  215.     return (NORMAL);
  216. }
  217.